ВГОРУ

SQL UNION Оператор

SQL UNION Опис

Оператор UNION використовується для поєднання набору результатів двох або більше інструкцій SELECT.

  • Кожна інструкція SELECT у UNION повинна мати однакову кількість стовпців
  • Стовпці також повинні мати подібні типи даних
  • Стовпці в кожній інструкції SELECT також мають бути в тому самому порядку

  • UNION Синтаксис

    SELECT column_name(s) FROM table1
    UNION
    SELECT column_name(s) FROM table2
    

    UNION ALL Синтаксис

    Оператор UNION за умовчанням вибирає лише різні значення. Щоб дозволити повторювані значення, використовуйте UNION ALL:

    SELECT column_name(s) FROM table1
    UNION ALL
    SELECT column_name(s) FROM table2
    
    Назви стовпців у наборі результатів зазвичай збігаються з назвами стовпців у першій інструкції SELECT.

    Демонстраційна база даних

    У цьому довіднику ми будемо використовувати відомий приклад бази даних "Northwind".

    Нижче наведено вибірку з таблиці "Customers" ("Клієнти"):

    CustomerIDCustomerNameContactNameAddressCityPostalCodeCountry
    1Alfreds FutterkisteMaria AndersObere Str. 57Berlin12209Germany
    2Ana Trujillo Emparedados y heladosAna TrujilloAvda. de la Constitución 2222México D.F.5021Mexico
    3Antonio Moreno TaqueríaAntonio MorenoMataderos 2312México D.F.5023Mexico
    4Around the HornThomas Hardy120 Hanover Sq.LondonWA1 1DPUK
    5Berglunds snabbköpChristina BerglundBerguvsvägen 8LuleåS-958 22Sweden

    Та вибірку з таблиці "Suppliers" ("Постачальники"):

    SupplierIDSupplierNameContactNameAddressCityPostalCodeCountryPhone
    1Exotic LiquidCharlotte Cooper49 Gilbert St.LondonaEC1 4SDUK(171) 555-2222
    2New Orleans Cajun DelightsShelley BurkeP.O. Box 78934New Orleans70117USA(100) 555-4822
    3Grandma Kelly's HomesteadRegina Murphy707 Oxford Rd.Ann Arbor48104USA(313) 555-5735
    4Tokyo TradersYoshi Nagase9-8 Sekimai Musashino-shiTokyo100Japan(03) 3555-5011
    5Cooperativa de Quesos 'Las Cabras'Antonio del Valle SaavedraCalle del Rosal 4Oviedo33007Spain(98) 598 76 54

    SQL UNION Приклад

    Наступна SQL-інструкція вибирає міста (тільки різні значення) з таблиці "Клієнти" та "Постачальники":

    Run SQLSELECT City FROM Customers 
    UNION 
    SELECT City FROM Suppliers 
    ORDER BY City
    
    Якщо деякі клієнти чи постачальники мають одне й те саме місто (City), кожне місто буде вказано лише один раз, оскільки UNION вибирає лише різні значення. Використовуйте UNION ALL, щоб також вибрати повторювані значення!

    SQL UNION ALL Приклад

    Наступна SQL-інструкція вибирає міста (також повторювані значення) з обох таблиць "Клієнти" та "Постачальники":

    Run SQLSELECT City FROM Customers 
    UNION ALL 
    SELECT City FROM Suppliers 
    ORDER BY City
    

    SQL UNION разом з WHERE

    Наступна SQL-інструкція вибирає німецькі міста (лише різні значення) з обох таблиць "Клієнти" та "Постачальники":

    Run SQLSELECT City, Country FROM Customers 
    WHERE Country = 'Germany' 
    UNION 
    SELECT City, Country FROM Suppliers 
    WHERE Country = 'Germany' 
    ORDER BY City
    

    SQL UNION ALL разом з WHERE

    Наступна SQL-інструкція вибирає німецькі міста (також повторювані значення) з обох таблиць "Клієнти" та "Постачальники":

    Run SQLSELECT City, Country FROM Customers 
    WHERE Country = 'Germany' 
    UNION ALL 
    SELECT City, Country FROM Suppliers 
    WHERE Country = 'Germany' 
    ORDER BY City
    

    Інший SQL UNION Приклад

    Наступна SQL-інструкція містить список усіх клієнтів та постачальників:

    Run SQLSELECT 'Customer' AS Type, ContactName, City, Country 
    FROM Customers 
    UNION 
    SELECT 'Supplier', ContactName, City, Country 
    FROM Suppliers
    

    Зверніть увагу на "AS Type" вище - це псевдонім. Псевдоніми SQL використовуються для надання таблиці або стовпцю тимчасового імені. Псевдонім існує лише на час виконання запиту. Отже, тут ми створили тимчасовий стовпець під назвою "Type", у якому вказано, чи є контактна особа "Клієнтом" чи "Постачальником".